home *** CD-ROM | disk | FTP | other *** search
/ Champak 43 / Vol 43.iso / games / menininh.swf / scripts / __Packages / VerticalScroller.as < prev   
Encoding:
Text File  |  2007-07-06  |  3.0 KB  |  106 lines

  1. class VerticalScroller extends MovieClip
  2. {
  3.    var defaultPos;
  4.    var content;
  5.    var scrollBarPos;
  6.    var scrollBar;
  7.    var scrollBarXPos;
  8.    var scrollBarSize;
  9.    var excuseText;
  10.    var loaderText;
  11.    var mContent;
  12.    var scrollTrack;
  13.    var scrollUpBtn;
  14.    var scrollDownBtn;
  15.    var currentScroll;
  16.    var contentMask;
  17.    var maximumScroll;
  18.    var scrollBarMaxDrag;
  19.    function VerticalScroller()
  20.    {
  21.       super();
  22.       this.init();
  23.    }
  24.    function init()
  25.    {
  26.       this.setScroll(false);
  27.       this.defaultPos = this.content._y;
  28.       this.scrollBarPos = this.scrollBar._y;
  29.       this.scrollBarXPos = this.scrollBar._x;
  30.       this.scrollBarSize = this.scrollBar._height;
  31.       this.excuseText = "";
  32.       this.loaderText._visible = true;
  33.       this.mContent.removeMovieClip();
  34.       this.mContent = this.content.createEmptyMovieClip("contentHolder",this.content.getNextHighestDepth());
  35.    }
  36.    function getContent()
  37.    {
  38.       return this.mContent;
  39.    }
  40.    function hideMessage()
  41.    {
  42.       this.loaderText._visible = false;
  43.    }
  44.    function setScroll(vis)
  45.    {
  46.       this.scrollBar._visible = vis;
  47.       this.scrollTrack._visible = vis;
  48.       this.scrollUpBtn._visible = vis;
  49.       this.scrollDownBtn._visible = vis;
  50.    }
  51.    function calculateScroll()
  52.    {
  53.       this.currentScroll = 0;
  54.       if(this.content._height > this.contentMask._height)
  55.       {
  56.          this.setScroll(true);
  57.          this.maximumScroll = this.content._height - this.contentMask._height + 5;
  58.          this.scrollBar._yscale = this.contentMask._height / (this.maximumScroll + this.contentMask._height) * 100;
  59.       }
  60.       else
  61.       {
  62.          this.setScroll(false);
  63.          this.maximumScroll = 0;
  64.          this.scrollBar._yscale = 100;
  65.       }
  66.       this.scrollBar._y = this.scrollBarPos;
  67.       this.content._y = this.defaultPos;
  68.       this.getScrollBarMaxDrag();
  69.    }
  70.    function updateScrollBarPos()
  71.    {
  72.       this.scrollBar._y = this.currentScroll / this.maximumScroll * (this.scrollBarSize - this.scrollBar._yscale / 100 * this.scrollBarSize) + this.scrollBarPos;
  73.    }
  74.    function getScrollBarMaxDrag()
  75.    {
  76.       this.scrollBarMaxDrag = this.scrollBarSize - this.scrollBar._yscale / 100 * this.scrollBarSize + this.scrollBarPos;
  77.       return this.scrollBarMaxDrag;
  78.    }
  79.    function updateScroll(sscroll)
  80.    {
  81.       if(sscroll > this.maximumScroll)
  82.       {
  83.          this.currentScroll = this.maximumScroll;
  84.       }
  85.       else if(sscroll < 0)
  86.       {
  87.          this.currentScroll = 0;
  88.       }
  89.       else
  90.       {
  91.          this.currentScroll = sscroll;
  92.       }
  93.       this.content._y = this.defaultPos - this.currentScroll;
  94.       this.updateScrollBarPos();
  95.    }
  96.    function updateScrollFromBar()
  97.    {
  98.       this.currentScroll = (this.scrollBar._y - this.scrollBarPos) / (this.scrollBarMaxDrag - this.scrollBarPos) * this.maximumScroll;
  99.       this.content._y = this.defaultPos - this.currentScroll;
  100.    }
  101.    function addToScroll(amount)
  102.    {
  103.       this.updateScroll(this.currentScroll + amount);
  104.    }
  105. }
  106.